home *** CD-ROM | disk | FTP | other *** search
- #ifndef ATMOSPHERE_H
- #define ATMOSPHERE_H
-
- #ifndef ATMOSPHERE_EXTERN
- #define ATMOSPHERE_EXTERN extern
- #endif
-
- #include "Color.h"
- #include "Point.h"
-
- const int weather_max_name = 64;
- class Weather {
- public:
- Weather();
- Weather(const char *n, GLfloat fd, GLfloat fs = 1, Color fc = white,
- Color s1 = blue, Color s2 = white,
- GLfloat sb = 1,
- GLenum ls = GL_LIGHT0, GLenum la = GL_LIGHT1);
- ~Weather();
-
- Weather operator=(Weather a);
-
- /* The sun position is used to determine how light / dark it is */
- void apply(Point sun);
- void draw_sky(Point sun);
-
- /* This is how much to blur shadows due to haze or fog */
- GLfloat shadow_blur();
-
- char name[weather_max_name];
-
- GLfloat fog_density;
- Color fog_color;
- /* Fog spread relates the height to the density of the fog -- 1.0
- * leads to uniform fog */
- GLfloat fog_spread;
-
- Color sky_top;
- Color sky_bottom;
-
- GLenum light_sun, light_ambient;
- GLfloat sun_brightness;
-
- private:
- };
- const int nweathers = 4;
- extern Weather weathers[nweathers];
- const int def_weather_index = 0;
-
- #undef ATMOSPHERE_EXTERN
-
- #endif
-